Verifying Programs via Intermediate Interpretation

نویسندگان

  • Alexei Lisitsa
  • Andrei P. Nemytykh
چکیده

We explore an approach to verification of programs via program transformation applied to an interpreter of a programming language. A specialization technique known as Turchin’s supercompilation is used to specialize some interpreters with respect to the program models. We show that several safety properties of functional programs modeling a class of cache coherence protocols can be proved by a supercompiler and compare the results with our earlier work on direct verification via supercompilation not using intermediate interpretation. Our approach was in part inspired by an earlier work by DeE. Angelis et al. (2014-2015) where verification via program transformation and intermediate interpretation was studied in the context of specialization of constraint logic programs.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Verification of Programs via Intermediate Interpretation

We explore an approach to verification of programs via program transformation applied to an interpreter of a programming language. A specialization technique known as Turchin’s supercompilation is used to specialize some interpreters with respect to the program models. We show that several safety properties of functional programs modeling a class of cache coherence protocols can be proved by a ...

متن کامل

Verifying Partial Correctness of Logic Programs with Delay Declarations

In this paper we propose a method for verifying partial correctness of logic programs with delay declarations. The method is based on the notion of specialised derivation. It diiers from the deenition of SLD-derivation since more instantiated general uniiers are computed instead of standard mgus. The contribution of this paper follows from the observation that the derivations of logic programs ...

متن کامل

SMACK: Decoupling Source Language Details from Verifier Implementations

A major obstacle to putting software verification research into practice is the high cost of developing the infrastructure enabling the application of verification algorithms to actual production code, in all of its complexity. Handling an entire programming language is a huge endeavor that few researchers are willing to undertake; even fewer could invest the effort to implement a verification ...

متن کامل

Verifying Programs with Arrays and Lists

Automatically verifying safety properties of programs is a tough problem that has been tackled using many different approaches: rewriting systems, abstract interpretation, SMT solving, . . . Most techniques restrict themselves to programs operating on boolean and integer values and transposing them to infinite data structures such as arrays has not yet been satisfyingly achieved. Recent work in...

متن کامل

Here be wyverns! Verifying LLVM bitcode with llStar

We present the llStar tool for the verification of programs written in bitcode, the intermediate language of the LLVM compiler infrastructure. The low-level nature of bitcode makes it a challenging target for automatic formal verification. Thanks to a novel adaptation of separation logic to bitcode’s memory model, and using the symbolic execution engine coreStar together with z3 as a backend, l...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • CoRR

دوره abs/1705.06738  شماره 

صفحات  -

تاریخ انتشار 2017